package com.knowledge.plus.泛型.demo;

import lombok.Data;

/**
 * 定义一个泛型接口 PairInterface<T>，包含一个方法 swap()，该方法交换泛型类型的两个实例的值。
 * 实现该接口的类 ValuePair<T>，并在 Main方法中测试交换功能
 *
 * @author TPF
 * @since 2024/9/6
 */
interface PairInterface<T> {

    void swap();

}

/**
 * 泛型类
 */
@Data
class ValuePair<T> implements PairInterface<T> {

    private T value1;
    private T value2;

    public ValuePair(T value1, T value2) {
        this.value1 = value1;
        this.value2 = value2;
    }

    @Override
    public void swap() {
        T temp = value1;
        value1 = value2;
        value2 = temp;
    }

    public static void main(String[] args) {
        ValuePair<String> pair = new ValuePair<>("你好", "帅！");
        System.out.println("交换前：value1 = " + pair.value1 + "，value2：" + pair.value2);
        pair.swap();
        System.out.println("交换后：value1 = " + pair.value1 + "，value2：" + pair.value2);
    }

}
